package com.vavr.checkincms.service;

import com.vavr.checkincms.domain.bo.MeetingParticipantBO;
import com.vavr.checkincms.domain.dto.MeetingParticipantDTO;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * MeetingParticipantService
 *
 * @author <a href="mailto:taofangf@gmail.com">Fangtao</a>
 * @since 2024.08
 */
public interface MeetingParticipantService {
    /**
     * 通过手机号码查询会议参与者信息
     *
     * @param bo 与会人员信息 {@link MeetingParticipantBO}
     * @param request 请求信息
     * @return {@link MeetingParticipantDTO}
     */
    MeetingParticipantDTO getMeetingParticipantByTel(MeetingParticipantBO bo, HttpServletRequest request);

    /**
     * 通过会议id查询与会人员信息
     *
     * @param meetingId 会议id
     * @return {@link MeetingParticipantDTO}
     */
    List<MeetingParticipantDTO> getMeetingParticipantById(String meetingId);

    /**
     * 添加会议人员信息
     *
     * @param bo 会议人员信息 {@link MeetingParticipantBO}
     * @param request 请求信息
     * @return {@link String}
     */
    String addMeetingParticipant(MeetingParticipantBO bo, HttpServletRequest request);

    /**
     * 获取用户扩展信息
     *
     * @param userId 会议人员信息 {@link String}
     * @return {@link String}
     */
    String getMeetingUserParam(String userId);


    /**
     * 获取用户扩展信息
     *
     * @param bo 查询人员信息
     * @param response 响应信息
     * @param request 请求信息
     */
    void getAllUserInfo(MeetingParticipantBO bo, HttpServletResponse response, HttpServletRequest request);
}
